
     XRouter Version 504c (all variants) - Changes Since V504a
     =========================================================

- Added:  BBS command "LUP" (List Unread Private), which lists the users
          who have unread mail, and how many unread messages they have.

- Added:  Count and display of "views" for blog posts. This doesn't
          count views by the post's author.

- Added:  Debug logging of asynchronous RHP responses, i.e. frames such
          as data/status sent from server to client that are not in
          direct response to a command.
 
- Added:  RHP will now reject netrom or IP family operations if the
          relevant protocol module is disabled by the MODE flags.

- Added:  More mime types to HTTP server.

- Added:  DEBUG option (32) to LOG flags in IGATE.CFG. The flags are now
          as follows:

          1  Igate start & stop events
          2  Server connect / disconnect events
          4  Frames from APRS_IS which pass Ifilter & gate to packet
          8  Frames from Packet which pass Pfilter & gate to APRS_IS
          16 APRS frames from APRS_IS, even if they fail IFILTER.
          32 All frames from APRS_IS, including comments
          64 Log to single IGATE.LOG instead of daily files

- Added:  When opening an RHP stream socket of "netrom" type, the
          "node" portion of the "local" address no longer needs to be
          specified, and defaults to XRouter's NODECALL.

- Added:  Better error message when TCP server sockets can't be opened.

- Added:  RHP "Packet trace" socket of type "AX25" now traces up into
          the NetRom layer, instead of displaying it as AX25 payload.

- Added:  JSON commands to PMS - status, list, read, send, kill, bye
          (conforming to PWP251 - Json Mail Protocol)

- Bugfix: In recent versions, "IP UNBAN" was not removing IP's from the
          ban list.

- Bugfix: Maximum sysop password size had dropped to 39. Raised to 63.

- Bugfix: Mail queue information was not being sent to bbsinfo database

- Bugfix: RHP was not logging received commands unless they came via
          a WebSockets connection.

- Bugfix: HTTP requests for favicon.ico sometimes caused segfault, but
          only if that file existed.

- Bugfix: TCP sequence number problem which potentially caused lockups
          and stuck connections, only on 64-bit versions, and only if
          Xrouter's own TCP stack was in use.

- Bugfix: In RHP netrom stream open, specifying a destination address
          without the "@nodecall" would cause segfault.

- Bugfix: Sending <RR> after receiving half the AX25 window, should
          have been for full duplex links only.

- Bugfix: When an RHP client was on a VPN, the whitelisting entries in
          ACCESS.SYS were not working correctly.

- Change: The BBS/PMS Info text now changes with PMSMODE.

- Change: RHP sessions now timeout after 10 minutes of inactivity, to
          prevent "hung" sessions caused by WhatsPac clients who
          disappear without saying goodbye.

- Change: RHP packet tracing now returns AX25 digipeaters as an array
          of JSON objects instead of a comma delimited string.

- Change: Client IP addresses for RHP and some other servers were
          previously whitelisted using a "flags" value of 1 in
          ACCESS.SYS. As that file is primarily intended to control
          access to the TELNET server, sysops had to be very careful
          not to inadvertently allow unwanted access to the telnet.
          The whitelisting flag is now 8, meaning "trust this address",
          and it applies only to servers such as RHP, HTTP, and
          AGWHOST.  TELNET access continues to be controlled by flags
          1, 2 and 4 as before. Setting flag 8 has no effect on TELNET
          and setting flags other than 8 has no effect on the other
          servers.

- Change: HTTP requests from localhost, or any of the "private" IP
          address ranges, have never required authorisation.  Requests
          from all other source addresses (including VPN's) required a
          callsign and password to be present in USERPASS.SYS. To allow
          operation over VPNs without authorisation, the client IP
          address(es) can now be "whitelisted" in ACCESS.SYS by
          including them with a "flags" value of 8. For example:
          "12.1.34.2/31  8".

- Change: The AGWHOST server required clients to log in using a valid
          callsign and password, unless whitelisted in ACCESS.SYS, even
          if they were on the same PC.  There is now no need to
          whitelist the IP if the client is on localhost or one of the
          "private" IP address ranges.  If the client IP needs to be
          whitelisted, the flag must now be 8, instead of 1.


